package com.xrit.sunnyday.dao;

import com.xrit.sunnyday.pojo.Menu;
import com.xrit.sunnyday.pojo.MenuExtend;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 菜单管理
 */
public interface MenuDao {

    /**
     * 动态查询菜单
     */
    List<Menu> findByRoid(int id);




    /**
     * 建立角色与菜单的关系
     * @param RoleId
     * @param menuId
     */
    @Insert("insert into t_role_menu (role_id, menu_id) values (#{RoleId},#{menuId})")
    void RoleMenuAdd(@Param("RoleId") Integer RoleId, @Param("menuId") Integer menuId);

    /**
     * 查询角色已有菜单ID
     * @param id
     * @return
     */
    @Select("SELECT menu_id FROM `t_role_menu` WHERE role_id = #{id}")
    List<Integer> QueryMenuId(Integer id);

    /**
     *判断角色与菜单是否有关系
     */
    @Select("SELECT COUNT(1) FROM `t_role_menu` WHERE role_id = #{id}")
    Integer QueryRoleMenuByRoleId(Integer id);

    /**
     * 根据RoleID删除t_role_menu角色与权限关系
     * @param id
     */
    @Delete("DELETE FROM t_role_menu WHERE role_id = #{id}")
    void RoleMenuDeleteByRoleId(Integer id);

    //    查询全部菜单及子菜单
    List<MenuExtend> QueryMenuAll();
}
